﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tibet.Entidades;
using Tibet.Datos;

namespace Tibet.Logica
{
    public class PerfilMetricaLogica
    {
        // Metodo que llama a acceso a datos para consultar las metricas
        public List<Metrica> ConsultarTodasMetrica()
        {
            List<Metrica> listaMetricas = new List<Metrica>();
            AccesoMetrica accesoMetrica = new AccesoMetrica();
            listaMetricas = accesoMetrica.ConsultarTodasMetrica();
            return listaMetricas;
        }
        // Metodo que manda a insertar el perfil de metrica y en la tabla perfil metrica metrica
        public bool InsertarPerfilMetrica(PerfilMetrica perfil)
        {
            AccesoPerfilMetrica accesoPerfil = new AccesoPerfilMetrica();
            bool respuesta;
            int id;
            respuesta = accesoPerfil.InsertarPerfilMetrica(perfil);
            id = accesoPerfil.ConsultarMaxIdPerfil();
            perfil.IdPerfilMetrica = id;
            foreach (Metrica miMetrica in perfil.MisMetricas)
            {
                respuesta = accesoPerfil.InsertarPerfilMetricaMetrica(perfil.IdPerfilMetrica, miMetrica.IdMetrica);
            }
            return respuesta;
        }
        // Metodo que manda a modificar el perfil de metrica, eliminar en perfil metrica metrica las metricas viejas
        // e inserta las metricas nuevas que se le hayan agregado
        public bool ModificarPerfilMetrica(PerfilMetrica perfil)
        {
            AccesoPerfilMetrica accesoPerfil = new AccesoPerfilMetrica();
            bool respuesta;
            respuesta = accesoPerfil.ModificarPerfilMetrica(perfil);
            respuesta = accesoPerfil.EliminarPerfilMetricaMetrica(perfil.IdPerfilMetrica);
            foreach (Metrica miMetrica in perfil.MisMetricas)
            {
                respuesta = accesoPerfil.InsertarPerfilMetricaMetrica(perfil.IdPerfilMetrica, miMetrica.IdMetrica);
            }
            return respuesta;
        } 
        //Metodo que busca todos los perfiles almacenados para retornarlos a la vista
        public List<PerfilMetrica> ConsultarTodosPerfiles()
        {
            List<PerfilMetrica> listaP = new List<PerfilMetrica>();
            AccesoPerfilMetrica acceso = new AccesoPerfilMetrica();
            listaP = acceso.ConsultarTodosLosPerfiles();
            return listaP;
        }


        //Metodo que consulta todas las metricas de un perfil
        public List<Metrica> ConsultarMetricasPorPerfil(PerfilMetrica perfil)
        {
            List<Metrica> listaM = new List<Metrica>();
            AccesoPerfilMetrica accesoP = new AccesoPerfilMetrica();
            listaM = accesoP.ConsultarMetricasPorPerfil(perfil);
            return listaM;
        }

        // Metodo que consulta todas las metricas asociadas a un proyecto
        public List<Metrica> ConsultarMetricasPorProyecto(int idProy)
        {
            List<Metrica> listaMetricas = new List<Metrica>();
            AccesoMetrica accesoMetrica = new AccesoMetrica();
            listaMetricas = accesoMetrica.ConsultarMetricasPorProyecto(idProy);
            return listaMetricas;
        }


         public List<PerfilMetrica> ObtenerListaPerfilMetrica()		
	        {			            
             AccesoPerfilMetrica datos = new AccesoPerfilMetrica();		            
             return datos.ConsultarTodosLosPerfiles();		
			
        }

   }

}
